import logging
import os
from pathlib import Path

"""
    路径处理逻辑固定，缺乏灵活性
    日志配置硬编码，不支持外部配置文件
    未处理日志文件轮转，可能导致磁盘占满
    缺少日志级别动态调整机制
    未考虑多模块日志冲突问题
    异常处理不完善
"""
def get_logs_path():
    current_path = os.path.dirname(os.path.abspath(__file__))
    logs_path = Path(os.path.dirname(current_path)).joinpath("logs")
    return logs_path

def setup_logger(name, log_file, level=logging.DEBUG):
    """设置日志记录器,支持控制台和文件日志"""
    logger = logging.getLogger(name)
    logger.setLevel(level)

    # 创建控制台处理器
    console_handler = logging.StreamHandler()
    console_handler.setLevel(level)
    logger_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    console_handler.setFormatter(logger_formatter)
    logger.addHandler(console_handler)

    # 创建文件处理器（如果指定了日志文件）
    if log_file:
        log_file_path = get_logs_path().joinpath(log_file)
        file_handler = logging.FileHandler(log_file_path, mode="a", encoding="utf-8")
        file_handler.setLevel(level)
        file_handler.setFormatter(logger_formatter)
        logger.addHandler(file_handler)

    return logger


if __name__ == '__main__':
    logger = setup_logger("logger", "test.log")

    logger.error("内存溢出")
